package com.atguigu.gmall.all.controller;

import com.atguigu.gmall.cart.client.CartFeignClient;
import com.atguigu.gmall.model.cart.CartInfo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import javax.annotation.Resource;

@Controller
public class CartController {

    @Resource
    private CartFeignClient cartFeignClient;

    //加入购物车
    @GetMapping("addCart.html")
    //数据回显：model转发使用    RedirectAttributes重定向使用    mono过滤器返回被过滤的数据
    public String addCart(Long skuId, Integer skuNum, RedirectAttributes redirectAttributes){
        CartInfo cartInfo = cartFeignClient.addCart(skuId,skuNum);
        //model.addAttribute("cartInfo",cartInfo);
        redirectAttributes.addAttribute("skuId",skuId);
        redirectAttributes.addAttribute("skuNum",skuNum);
        //重定向到转向购物车
        return "redirect:http://cart.gmall.com/toCart.html";
    }

    //重定向到添加购物车页面
    @GetMapping("toCart.html")
    public String toCart(Long skuId,Integer skuNum,Model model){
        CartInfo cartInfo = cartFeignClient.toCart(skuId);
        if (cartInfo != null) {
            cartInfo.setSkuNum(skuNum);
            model.addAttribute("cartInfo",cartInfo);
            return "cart/addCart";//转发到cart下addCart的页面
        } else {
            //之前未登录时有购物车 用户突然登录了 没有购物车 导致空指针异常  走首页
            return "redirect:http://www.gmall.com";
        }
    }

    //去购物车结算
    @GetMapping("cart.html")
    public String cart(){
        return "cart/index";
    }
}
